#include<iostream>
#include<string>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<sstream> 
using namespace std;

const int MAX_LEN = 10;

void MyPrint(string s,int len){
	cout<<s;
	for(int i=0;i<len-s.size();i++){
		cout<<" ";
	}
}

int main(){
	string s,t;
	vector<string> vecs[MAX_LEN];
	int maxLen[100] = {0};
	int line = 0; // 行 
	while(getline(cin,s)){
		stringstream ss(s);
		int col = 0; // 列 
		while(ss >> t){
			vecs[line].push_back(t);
			if(maxLen[col] < t.size()){
				maxLen[col] = t.size();
			}
			col++;
		}
		line++;
	}
	
	// 处理输出 
	for(int i=0;i<line;i++){
		for(int j=0;j<vecs[i].size();j++){
			if(j == vecs[i].size()-1){
				// 最后一行不需要最后的空格 
				MyPrint(vecs[i][j],maxLen[j]);
			} else {
				// 前面行，需要输出多余的空格
				MyPrint(vecs[i][j],maxLen[j]+1);
			}
		}
		cout<<"\n";
	}
	
	return 0;
}
 